import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

const pkg = require('./package.json')

console.log(process.env, 'rocess');
//开启gzip压缩
import viteCompression from 'vite-plugin-compression'
// https://vitejs.dev/config/
export default defineConfig({
  resolve: {
    //路径别名
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },

  css: {
    //css预处理 路径最后要加上;不然会报错
    preprocessorOptions: {
      scss: {
        // additionalData: '@import "@/assets/scss/style.scss";',
      },
    },
  },
  //插件
  // 开启gzip压缩https://blog.csdn.net/ZhaoQM_script/article/details/120363386 plugins: [vue(), viteCompression()],
  plugins: [vue()],

  publicDir: 'public',
  server: {
    host: 'localhost', // 默认是 localhost
    port: 8001, // 默认是 3000 端口
    open: true, // 浏览器自动打开
    https: false, // 是否开启 https
    base: './', // 生产环境下的公共路径
    //反向代理
    proxy: {
      // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
      '/api': {
        target: 'http://127.0.0.1:7001', // 后端服务实际地址
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
    //限制为工作区 root 路径以外的文件的访问
    fs: {
      strict: false,
    },
  },

  //生产模式打包配置
  build: {
    outDir: 'dist', // 打包构建输出路径，默认 dist ，如果路径存在，构建之前会被删除
    //这个用于打包。打包会出现大小限制
    chunkSizeWarningLimit: 5120,
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id
              .toString()
              .split('node_modules/')[1]
              .split('/')[0]
              .toString()
          }
        },
      },
    },
  },
})
